#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include "string.h"

int main()
{
	yin::string s1("hello world");
	yin::string s2(s1);

	cout << s1.c_str() << endl;
	cout << s2.c_str() << endl;

	yin::string s3;
	s1 = s2;
	cout << s1.c_str() << endl;
	cout << s3.c_str() << endl;
	return 0;
}

void Print(const yin::string& s)
{
	for (auto e : s)
		cout << e << " ";
	cout << endl;
}

//int main()
//{
//	yin::string s1("hello world");
//	for (yin::string::iterator it = s1.begin(); it != s1.end(); it++)
//	{
//		(*it)='*';
//	}
//	for (auto e : s1)
//		cout << e << " ";
//	cout << endl;
//	/*for (yin::string::iterator it = s1.begin(); it != s1.end(); it++)
//	{
//		cout << *it << " ";
//	}*/
//	cout << endl;
//	Print(s1);
//	return 0;
//}

//int main()
//{
//	yin::string s1("hello word");
//	yin::string s2("xxxxxxxxxxxx");
//	cout << (s1 > s2) << endl;
//	cout << (s1 == s2) << endl;
//	cout << (s1 < s2) << endl;
//
//	return 0;
//}

//int main()
//{
//	yin::string s1("hello world");
//	s1.push_back('X');
//	s1.append("*************");
//
//	/*s1 += 'x';
//	s1 += "***********";*/
//	cout << s1.c_str() << endl;
//	return 0;
//}

//int main()
//{
//	yin::string s("hello world");
//	//s.insert(5, '*');
//	s.insert(5, "***");
//	cout << s.c_str() << endl;
//
//	//s.insert(0,'*');
//	s.insert(0,"xxxxxxxxxxxxxx");
//	cout << s.c_str() << endl;
//	return 0;
//}

//int main()
//{
//	yin::string s("hello word*****************");
//	cout << s.capacity() << endl;
//	s.reserve(10);
//	cout << s.capacity() << endl;
//
//	return 0;
//}

//int main()
//{
//	yin::string s;
//	s.resize(20, '*');
//	cout << s.c_str() << endl;
//	s.resize(30, 'x');
//	cout << s.c_str() << endl;
//	s.resize(10);
//	cout << s.c_str() << endl;
//
//	return 0;
//}

//int main()
//{
//	yin::string s("0123456789");
//	cout << s.c_str() << endl;
//	s.erase(4, 3);
//	cout << s.c_str() << endl;
//	s.erase(4, 30);
//	cout << s.c_str() << endl; 
//	s.erase(2);
//	cout << s.c_str() << endl;
//	return 0;
//}

//int main()
//{
//	yin::string s1("hello world");
//	yin::string s2("yhq dyf");
//	s1.swap(s2);
//	cout << s1.c_str() << endl;
//	cout << s2.c_str() << endl;
//
//	return 0;
//}


//int main()
//{
//	yin::string s1("hello world");
//	s1 += '\0';
//	s1 += "xxxxxxxx";
//	
//	cin >> s1;
//	cout << s1<< endl;
//
//	/*yin::string s1("hello world");
//	s1 += '\0';
//	s1 += "xxxxxxxx";
//	cout << s1 << endl;
//	s1.reserve(50);
//	cout << s1 << endl;*/
//
//	return 0;
//}


//int main()
//{
//	string s;
//	cout << sizeof(s) << endl;
//	return 0;
//}